home *** CD-ROM | disk | FTP | other *** search
/ Zoom 2 / Zoom - Release 2 (1996)(Active Software)[!].iso / utilities / blankers / blitzblank_260 / developer / modulesources / bb.plasma.bb2 < prev    next >
Text File  |  1995-05-18  |  16KB  |  554 lines

  1. ; BB.Plasma v1.2  Module for BlitzBlank
  2. ; Written by Daniel Pink
  3.  
  4. ;--------------------------------------------------------------------
  5.  
  6. ; The different kinds of GUI-objects for a module's config-window
  7.  
  8. #BB_PGroup=1     ; Indicates the start of a new page group
  9. #BB_PGroup_End=2 ; Indicates the end of the page group
  10. #BB_VGroup=3     ; Indicates the start of a new vertical group
  11. #BB_VGroup_End=4 ; Indicates the end of the vertical group
  12. #BB_Check=5      ; Checkmark, uses set field in BB_Object
  13. #BB_String=6     ; Textgadget, uses max/contents fields in BB_Object
  14. #BB_File=7       ; Stringgadget with attached filerequester
  15. #BB_Slider=8     ; Slidergadget, uses min/max/set fields in BB_Object
  16. #BB_Cycle=9      ; Cyclegadget, uses set/contents in BB_Object
  17. #BB_Dummy=10     ; Dummy, if you want no gadgets at all
  18. #BB_Font=11      ; Stringgadget with attached fontrequester
  19. #BB_Dir=12       ; Stringgadget with attached filerequester, Dirs only
  20.  
  21. ;--------------------------------------------------------------------
  22.  
  23. ; Flags used in BB_Message's flag-field
  24.  
  25. #BBF_Screenmode=1 LSL  0   ; Allows screenmode-selection
  26. #BBF_colours=1 LSL  1      ; Allows screendepth-selection
  27. #BBF_Sample=1 LSL  2       ; Not supported yet
  28. #BBF_NoWatch=1 LSL  3      ; Eats no CPU-time, so needs no checking
  29. #BBF_NoScreen=1 LSL  4     ; Wants no screen from BlitzBlank
  30. #BBF_FirstScreen=1 LSL  5  ; Wants pointer to screen in front, be CAREFUL with this!
  31. #BBF_CloneScreen=1 LSL  6  ; Wants a clone from the FrontScreen
  32. #BBF_AmigaOnly=1 LSL  7    ; Not supported yet
  33. #BBF_NoMouseBlank=1 LSL  8 ; No mouseblanking from BlitzBlank wanted
  34. #BBF_NoKeyPass=1 LSL  9    ; No keypassing necessary (no mouseblanking, no own active window
  35. #BBF_BigWindow=1 LSL 10    ; The blankwindow fills the whole screen
  36. #BBF_Interleaved=1 LSL 11  ; BlitzBlank TRIES to give you a screen with an Interleaved BitMap
  37.  
  38. ;--------------------------------------------------------------------
  39.  
  40. ; The structure, that holds config-data
  41.  
  42. NEWTYPE .BB_Object
  43.   next_.l ;BB_Object ; Pointer to next object or NULL if last object
  44.   type_.w            ; What kind of GUI-object this is
  45.   min_.l             ; Minimum value for BB_Slider
  46.   max_.l             ; Maximum value for BB_Slider, max length of BB_String
  47.   set_.l             ; Value of BB_Slider, state of BB_Checkmark, BB_Cycle
  48.   contents_.l        ; Pointer to buffer for BB_String, pointer to stringarray for BB_Cycle
  49.   label_.l           ; Label for ALL objects
  50. End NEWTYPE
  51.  
  52. ;--------------------------------------------------------------------
  53.  
  54. ; The message to send to BlitzBlank/BlitzBlankPrefs
  55.  
  56. NEWTYPE .BB_Message
  57.   msg_.Message      ; Normal Exec-Message-structure
  58.   flags_.l          ; Flags for this module
  59.   infotext_.l       ; Pointer to infotext for this module
  60.   *first_.BB_Object ; Pointer to first BB_Object or NULL for Info-action
  61.   modpri_.w         ; not of use, if you use the library
  62.   *path_.b          ; Path to directory for module-data
  63.   *blitzblank_.Task ; not of use, if you use the library
  64. End NEWTYPE
  65.  
  66. ;--------------------------------------------------------------------
  67.  
  68. ; The BlitzBlank-Screeninfo-structure
  69.  
  70. NEWTYPE .BB_Screeninfo
  71.   xpos_.w           ; should be 0
  72.   ypos_.w           ; should be 0
  73.   width_.w          ; User-selected screen-width
  74.   height_.w         ; User-selected screen-height
  75.   depth_.w          ; User-selected screen-depth
  76.   mode_.l           ; User-selected screen-mode
  77.   *bbscreen_.Screen ; module screen
  78.   *bbwindow_.Window ; blank window
  79.   mindepth_.w       ; desired minimum depth or 0
  80.   maxdepth_.w       ; desired maximum depth or 0
  81. End NEWTYPE
  82.  
  83. ;--------------------------------------------------------------------
  84.  
  85. ; Flag-definition for BBL_AllocBitMap()/BBL_AllocRastPort,
  86. ; if you don't have the V39-includes
  87.  
  88. #BMB_CLEAR=0
  89. #BMB_DISPLAYABLE=1
  90. #BMB_INTERLEAVED=2
  91. #BMF_CLEAR=1 LSL #BMB_CLEAR
  92. #BMF_DISPLAYABLE=1 LSL #BMB_DISPLAYABLE
  93. #BMF_INTERLEAVED=1 LSL #BMB_INTERLEAVED
  94.  
  95. ;--------------------------------------------------------------------
  96.  
  97. ; Locale string numbers
  98. #PaletteStr1=600
  99. #PaletteStr2=601
  100. #PaletteStr3=602
  101. #SpeedStr0=603
  102. #SpeedStr1=604
  103. #SpeedStr2=605
  104. #SpeedStr3=606
  105. #PaletteLabelStr=607
  106. #SpeedLabelStr=608
  107. #InfoStr=609
  108. #BrightLabelStr=610
  109.  
  110. ;--------------------------------------------------------------------
  111.  
  112. ; Types for the AGA colourmap for LoadRGB23_
  113. NEWTYPE .RGB
  114.   _Red.l
  115.   _Green.l
  116.   _Blue.l
  117. End NEWTYPE
  118.  
  119. NEWTYPE .ColourMap32
  120.   _NumCols.w
  121.   _Zero.w
  122.   _RGB.RGB[256]
  123.   _Zero2.l
  124. End NEWTYPE
  125.  
  126. ;--------------------------------------------------------------------
  127.  
  128. ; Type for non AGA colourmap for LoadRGB4_
  129. NEWTYPE .ColourMap4
  130.   _NumCols.w
  131.   _Colours.w[256]
  132. End NEWTYPE
  133.  
  134. ;--------------------------------------------------------------------
  135.  
  136. ; Type for lookup table to see how many VWaits and colour
  137. ; cycles to do for different speeds and bitmap depths.
  138. NEWTYPE .Update
  139.   NoVWaits.b [7]
  140.   NoCycles.b [7]
  141. End NEWTYPE
  142.  
  143. NEWTYPE .Brightness
  144.   Level39.b [5]
  145.   LevelPre39.b [5]
  146. End NEWTYPE
  147.  
  148. DEFTYPE .Brightness *BrightnessTable
  149. DEFTYPE .Update *UpdateRate
  150. DEFTYPE .ColourMap32 MyColourMap32
  151. DEFTYPE .ColourMap4 MyColourMap4
  152. *UpdateRate=?UpdateRateLUT
  153. *BrightnessTable=?BrightnessLUT
  154.  
  155. ;--------------------------------------------------------------------
  156.  
  157. ; Set a colour in the colourmap
  158. Statement SetColour{N.w,R.w,G.w,B.w}
  159. SHARED MyColourMap32,MyColourMap4,NumColours.w,V39.b
  160.   If N>=0 AND N<NumColours
  161.     If V39
  162.       MyColourMap32\_RGB[N]\_Red=R+(R LSL 8)+(R LSL 16)+(R LSL 24)
  163.       MyColourMap32\_RGB[N]\_Green=G+(G LSL 8)+(G LSL 16)+(G LSL 24)
  164.       MyColourMap32\_RGB[N]\_Blue=B+(B LSL 8)+(B LSL 16)+(B LSL 24)
  165.     Else
  166.       MyColourMap4\_Colours[N]=(R LSL 8)|(G LSL 4)|B
  167.     EndIf
  168.   EndIf
  169. End Statement
  170.  
  171. ;--------------------------------------------------------------------
  172.  
  173. ; Initialise colourmap
  174. Statement InitColourMap {}
  175. SHARED MyColourMap32,MyColourMap4,NumColours,V39
  176.   If V39
  177.     MyColourMap32\_NumCols=NumColours
  178.   Else
  179.     MyColourMap4\_NumCols=NumColours
  180.   EndIf
  181. End Statement
  182.  
  183. ;--------------------------------------------------------------------
  184.  
  185. ; Show the colours in the current colourmap
  186. Statement ShowColours {}
  187. SHARED MyColourMap32,MyColourMap4,NumColours,vp.l,V39
  188.   If V39
  189.     LoadRGB32_ vp,&MyColourMap32
  190.   Else
  191.     LoadRGB4_ vp,&MyColourMap4,NumColours
  192.   EndIf
  193. End Statement
  194.  
  195. ;--------------------------------------------------------------------
  196.  
  197. ; Cycle the colours in the AGA colourmap
  198. Statement CycleColours32 {PaletteAddress.l}
  199.   MOVEM.l d0-d3,-(a7)
  200.   MOVE.l d0,a0 ; a0 Points to .Palettedata
  201.   MOVE.w (a0),d0 ; d0 is number of colours
  202.   CMP.w #3,d0
  203.   BLE ExitCycleColours32
  204.   ADDA.l #16,a0
  205.   MOVE.l (a0)+,d1 ; store the first palette entry
  206.   MOVE.l (a0)+,d2 ; so that it can be put in the
  207.   MOVE.l (a0)+,d3 ; last entry when we get there
  208.   SUB.w #3,d0
  209. CopyNext32:
  210.   ; Copy palette entries to the previous entry
  211.   MOVE.l (a0)+,-16(a0)
  212.   MOVE.l (a0)+,-16(a0)
  213.   MOVE.l (a0)+,-16(a0)
  214.   DBRA d0,CopyNext32:
  215.   SUBA #12,a0
  216.   ; Copy the first entry to the last entry
  217.   MOVE.l d1,(a0)+
  218.   MOVE.l d2,(a0)+
  219.   MOVE.l d3,(a0)
  220. ExitCycleColours32:
  221.   MOVEM.l (a7)+,d0-d3
  222.   AsmExit
  223. End Statement
  224.  
  225. ;--------------------------------------------------------------------
  226.  
  227. ; Cycle the colours in the non AGA colourmap
  228. Statement CycleColours4 {PaletteAddress.l}
  229.   MOVE.l d0,a0 ; a0 Points to .Palettedata
  230.   MOVE.w (a0),d0 ; d0 is number of colours
  231.   CMP.w #3,d0
  232.   BLE ExitCycleColours4
  233.   ADDA.l #2,a0
  234.   MOVE.w (a0)+,d1 ; store the first palette entry
  235.   SUB.w #3,d0
  236. CopyNext4:
  237.   ; Copy palette entries to the previous entry
  238.   MOVE.w (a0)+,-4(a0)
  239.   DBRA d0,CopyNext4:
  240.   ; Copy the first entry to the last entry
  241.   MOVE.w d1,-2(a0)
  242. ExitCycleColours4:
  243.   AsmExit
  244. End Statement
  245.  
  246. ;--------------------------------------------------------------------
  247.  
  248. Statement InitPlasmaPalette{}
  249. SHARED NumColours.w,V39,Bright.b
  250. ColsD3.w=NumColours/3
  251. If V39
  252.   SetColour{0,0,Int(Bright/ColsD3),Bright}
  253.   For i=1 To ColsD3
  254.     SetColour{i,0,Int(((i*Bright)/ColsD3)+0.5),Int(((ColsD3+1-i)*Bright)/ColsD3)}
  255.     SetColour{i+ColsD3,Int((i*Bright)/ColsD3),Int(((ColsD3+1-i)*Bright)/ColsD3),0}
  256.     SetColour{i+ColsD3+ColsD3,Int(((ColsD3+1-i)*Bright)/ColsD3),0,Int((i*Bright)/ColsD3)}
  257.   Next i
  258. Else
  259.   SetColour{0,0,Int(Bright/ColsD3),Bright}
  260.   For i=1 To ColsD3
  261.     SetColour{i,0,Int((i*Bright)/ColsD3),Int(((ColsD3+1-i)*Bright)/ColsD3)}
  262.     SetColour{i+ColsD3,Int((i*Bright)/ColsD3),Int(((ColsD3+1-i)*Bright)/ColsD3),0}
  263.     SetColour{i+ColsD3+ColsD3,Int(((ColsD3+1-i)*Bright)/ColsD3),0,Int((i*Bright)/ColsD3)}
  264.   Next i
  265. EndIf
  266. End Statement
  267.  
  268. ;--------------------------------------------------------------------
  269.  
  270. Statement InitCloudPalette{}
  271. SHARED NumColours,V39,Bright
  272. ColsD2.w=NumColours/2
  273. If V39
  274.   For i=0 To NumColours
  275.     SetColour{i,Int((Abs(i-ColsD2)*Bright)/ColsD2),Int((Abs(i-ColsD2)*Bright)/ColsD2),Bright}
  276.   Next i
  277. Else
  278.   For i=0 To NumColours
  279.     SetColour{i,Int(0.5+((Abs(i-ColsD2)*Bright)/ColsD2)),Int(0.5+(Abs(i-ColsD2)*Bright)/ColsD2),Bright}
  280.   Next i
  281. EndIf
  282. End Statement
  283.  
  284. ;--------------------------------------------------------------------
  285.  
  286. Statement InitElectricPalette {}
  287. SHARED NumColours,V39,Bright
  288. Threshold.w=NumColours/12
  289. If V39
  290.   For i=0 To NumColours
  291.     If(i<=Threshold)
  292.      SetColour{i,Int((((Threshold-i)/Threshold)*Bright)+0.5),Int((((Threshold-i)/Threshold)*Bright/3)+0.5),Bright/2}
  293.     Else
  294.       SetColour{i,0,0,0}
  295.     EndIf
  296.   Next i
  297. Else
  298.   If NumColours=32
  299.     SetColour{0,Bright-1,Bright-2,Bright-2}
  300.     SetColour{1,0,0,Bright/2}
  301.     For i=2 To 32
  302.       SetColour{i,0,0,0}
  303.     Next i
  304.   Else
  305.     For i=0 To NumColours
  306.       If(i<=Threshold)
  307.         SetColour{i,Int(((Threshold-i)/Threshold)*Bright),Int(((Threshold-i)/Threshold)*Bright/2),Bright/2}
  308.       Else
  309.         SetColour{i,0,0,0}
  310.       EndIf
  311.     Next i
  312.   EndIf
  313. EndIf
  314. End Statement
  315.  
  316. ;--------------------------------------------------------------------
  317.  
  318. ; Recursive procedure used to draw colours to a
  319. ; section of the bitmap bounded by (x1,y1) and (x2,y2)
  320. Statement Sub_Divide{ x1.w, y1.w, x2.w, y2.w}
  321. SHARED Exit.b,rp.l,NumColours
  322.   If NOT(Exit)
  323.     x.w=(x1+x2)/2
  324.     y.w=(y1+y2)/2
  325.     Col1.w=ReadPixel_(rp,x1,y1)
  326.     Col2.w=ReadPixel_(rp,x2,y1)
  327.     Col3.w=ReadPixel_(rp,x1,y2)
  328.     Col4.w=ReadPixel_(rp,x2,y2)
  329.     If ReadPixel_(rp,x,y1)=0
  330.       Col.w=Abs(x1-x2)
  331.       Col.w=Int(Rnd(Col*2)-Col)+(Col1+Col2)/2
  332.       If (Col<1) Then Col=1 Else If (Col>NumColours) Then Col=NumColours
  333.       SetAPen_ rp,Col
  334.       WritePixel_ rp,x,y1
  335.     EndIf
  336.     If ReadPixel_(rp,x2,y)=0
  337.       Col.w=Abs(y1-y2)
  338.       Col.w=Int(Rnd(Col*2)-Col)+(Col2+Col4)/2
  339.       If (Col<1) Then Col=1 Else If (Col>NumColours) Then Col=NumColours
  340.       SetAPen_ rp,Col
  341.       WritePixel_ rp,x2,y
  342.     EndIf
  343.     If ReadPixel_(rp,x,y2)=0
  344.       Col.w=Abs(x1-x2)
  345.       Col.w=Int(Rnd(Col*2)-Col)+(Col3+Col4)/2
  346.       If (Col<1) Then Col=1 Else If (Col>NumColours) Then Col=NumColours
  347.       SetAPen_ rp,Col
  348.       WritePixel_ rp,x,y2
  349.     EndIf
  350.     If ReadPixel_(rp,x1,y)=0
  351.       Col.w=Abs(y1-y2)
  352.       Col.w=Int(Rnd(Col*2)-Col)+(Col1+Col3)/2
  353.       If (Col<1) Then Col=1 Else If (Col>NumColours) Then Col=NumColours
  354.       SetAPen_ rp,Col
  355.       WritePixel_ rp,x1,y
  356.     EndIf
  357.     Col.w=(Col1+Col2+Col3+Col4+2)/4
  358.     SetAPen_ rp,Col
  359.     WritePixel_ rp,x,y
  360.     Width1.b=x-x1>1
  361.     Width2.b=x2-x>1
  362.     Width3.b=y-y1>1
  363.     Width4.b=y2-y>1
  364.     If Width1 OR Width3 Then Sub_Divide{x1, y1, x,  y }
  365.     If Width2 OR Width3 Then Sub_Divide{x,  y1, x2, y }
  366.     If Width1 OR Width4 Then Sub_Divide{x1, y,  x,  y2}
  367.     If Width2 OR Width4 Then Sub_Divide{x,  y,  x2, y2}
  368.   End If
  369. End Statement
  370.  
  371. ;--------------------------------------------------------------------
  372.  
  373. ; Data for palette cycle gadget
  374. Dim PaletteCycle.l(3)
  375. PaletteCycle(0)=BBL_GetString_ (#PaletteStr1,?_Palette1)
  376. PaletteCycle(1)=BBL_GetString_ (#PaletteStr2,?_Palette2)
  377. PaletteCycle(2)=BBL_GetString_ (#PaletteStr3,?_Palette3)
  378. PaletteCycle(3)=0
  379.  
  380. ;--------------------------------------------------------------------
  381.  
  382. ; Data for cycle speed cycle gadget
  383. Dim SpeedCycle.l(4)
  384. SpeedCycle(0)=BBL_GetString_ (#SpeedStr0,?Speed0)
  385. SpeedCycle(1)=BBL_GetString_ (#SpeedStr1,?Speed1)
  386. SpeedCycle(2)=BBL_GetString_ (#SpeedStr2,?Speed2)
  387. SpeedCycle(3)=BBL_GetString_ (#SpeedStr3,?Speed3)
  388. SpeedCycle(4)=0
  389.  
  390. ;--------------------------------------------------------------------
  391.  
  392. ; MUI objects for preferences
  393. Dim Objects.BB_Object(4)
  394. Objects(0)\next_=&Objects(1),#BB_VGroup,0,0,0,0,0
  395. Objects(1)\next_=&Objects(2),#BB_Cycle,0,0,0,&PaletteCycle(0),BBL_GetString_(#PaletteLabelStr,?PaletteLabel)
  396. Objects(2)\next_=&Objects(3),#BB_Cycle,0,0,0,&SpeedCycle(0),BBL_GetString_(#SpeedLabelStr,?SpeedLabel)
  397. Objects(3)\next_=&Objects(4),#BB_Slider,0,4,0,0,BBL_GetString_(#BrightLabelStr,?BrightLabel)
  398. Objects(4)\next_=0,#BB_VGroup_End,0,0,0,0,0
  399.  
  400. DEFTYPE .BB_Message Message
  401. DEFTYPE .BB_Screeninfo *ScreenInfo
  402. DEFTYPE .Screen *MyScreen
  403.  
  404. ;--------------------------------------------------------------------
  405.  
  406. ; Construct message to return to BlitzBlank
  407. Message\first_=&Objects(0)
  408. Message\infotext_=BBL_GetString_(#InfoStr,?InfoMessage)
  409. Message\flags_=#BBF_Screenmode+#BBF_colours
  410.  
  411. ;--------------------------------------------------------------------
  412.  
  413. ; Get pointer to screeninfo
  414. StrToLong_ Par$(3),&*ScreenInfo
  415. *ScreenInfo\mindepth_=5
  416.  
  417. ;--------------------------------------------------------------------
  418.  
  419. ; Check which action to do
  420. Select Par$(1)
  421. Case "BLANK"
  422.   BBL_SendMessage_ &Message,Par$(2)
  423.   *MyScreen=*ScreenInfo\bbscreen_
  424.   If *MyScreen<>0
  425.     ScreenToFront_ *MyScreen
  426.     BBL_ModuleRunning_
  427.     Speed.b=*ScreenInfo\depth_-(Objects(2)\set_+2)
  428.     Gosub SetInterrupt ; Interrupt used to stop while drawing
  429.     vp.l=*MyScreen\_ViewPort
  430.     rp.l=*MyScreen\_RastPort
  431.     Choice.b=Objects(1)\set_
  432.     NumColours.w=1LSL*ScreenInfo\depth_
  433.     Bright.b=Objects(3)\set_
  434.  
  435.     If ExecVersion=39
  436.       V39=True
  437.     Else
  438.       V39=False
  439.     EndIf
  440.  
  441.     If V39
  442.       Bright=*BrightnessTable\Level39[Bright]
  443.     Else
  444.       Bright=*BrightnessTable\LevelPre39[Bright]
  445.     EndIf
  446.  
  447.     InitColourMap {}
  448.     Select Choice.b
  449.     Case 1
  450.       InitCloudPalette{}
  451.     Case 2
  452.       InitElectricPalette{}
  453.     Default
  454.       InitPlasmaPalette{}
  455.     End Select
  456.     ShowColours {}
  457.     SetAPen_ rp,Int(Rnd(NumColours)+1)
  458.     WritePixel_ rp,0,0
  459.     SetAPen_ rp,Int(Rnd(NumColours)+1)
  460.     WritePixel_ rp,*ScreenInfo\width_-1, 0
  461.     SetAPen_ rp,Int(Rnd(NumColours)+1)
  462.     WritePixel_ rp,*ScreenInfo\width_-1, *ScreenInfo\height_-1
  463.     SetAPen_ rp,Int(Rnd(NumColours)+1)
  464.     WritePixel_ rp,0, *ScreenInfo\height_-1
  465.     Sub_Divide{0, 0, *ScreenInfo\width_-1, *ScreenInfo\height_-1}
  466.     ClrInt 5 ; Finished drawing, so don't need interrupt
  467.     If NOT Exit
  468.       While CheckSignal_(#SIGBREAKF_CTRL_C)<>#SIGBREAKF_CTRL_C
  469.         For Counter.b=1 To *UpdateRate\NoVWaits[Speed]
  470.           WaitTOF_
  471.         Next Counter
  472.         For Counter=1 To *UpdateRate\NoCycles[Speed]
  473.           If V39
  474.             CycleColours32 {&MyColourMap32}
  475.           Else
  476.             CycleColours4 {&MyColourMap4}
  477.           EndIf
  478.         Next Counter
  479.         ShowColours{}
  480.       Wend
  481.     EndIf
  482.   EndIf
  483.   BBL_BlankDone_
  484. Case "CONFIG"
  485.   BBL_SendMessage_ &Message,Par$(2)
  486. Case "INFO"
  487.   Message\first_=0
  488.   BBL_SendMessage_ &Message,Par$(2)
  489. End Select
  490.  
  491. End
  492.  
  493. ;--------------------------------------------------------------------
  494.  
  495. .SetInterrupt
  496. Exit.b=False
  497. SetInt 5
  498.   If CheckSignal_(#SIGBREAKF_CTRL_C)=#SIGBREAKF_CTRL_C Then Exit=True
  499. End SetInt
  500. Return
  501.  
  502. ;--------------------------------------------------------------------
  503.  
  504. ; Default strings
  505. ._Palette1:
  506. Dc.b "Plasma",0
  507.  
  508. ._Palette2:
  509. Dc.b "Clouds",0
  510.  
  511. ._Palette3:
  512. Dc.b "Electrical",0
  513.  
  514. .PaletteLabel:
  515. Dc.b "Palette T_ype",0
  516.  
  517. .SpeedLabel:
  518. Dc.b "Colour Cycle _Rate",0
  519.  
  520. .Speed0:
  521. Dc.b "Very Fast",0
  522.  
  523. .Speed1:
  524. Dc.b "Fast",0
  525.  
  526. .Speed2:
  527. Dc.b "Medium",0
  528.  
  529. .Speed3:
  530. Dc.b "Slow",0
  531.  
  532. .InfoMessage:
  533. Dc.b 27,"c",27,"bPlasma",27,"n v1.2",10,10
  534. Dc.b "Module for BlitzBlank",10,10
  535. Dc.b "Copyright 1995",10
  536. Dc.b "By",10
  537. Dc.b "Daniel Pink",10,0
  538.  
  539. .BrightLabel:
  540. Dc.b "_Brightness",0
  541. ;--------------------------------------------------------------------
  542.  
  543.  
  544. ; Lookup table for number of VWaits and Cycles
  545. .UpdateRateLUT
  546. Dc.b  8, 5, 3, 2, 1, 1, 1
  547. Dc.b  1, 1, 1, 1, 1, 2, 3
  548.  
  549. .BrightnessLUT
  550. Dc.b 63,80,96,112,127
  551. Dc.b 4,5,6,7,8
  552.  
  553. Even
  554.